package com.zrrd.learn.chapter07;

/**
 * 字符串
 *
 * @author asus
 * @version 1.0
 * @date 2023/7/17 8:40
 */
public class LearnString {
    public static void main(String[] args) {
        //抽象        标识符{变量}[引用]
        //字符定义
        String s11="abc";
        //字符串：不可变更字符序列
        //把一个字符数组转换为字符串
        String s22=new String(new char[]{'a','b','c'});
        String s33=new String (new char[]{'a','b','c'},0,3);

        String s1="ab";
        System.out.println(s1);
//        hello22
        String s2=2+2+"c";
        System.out.println(s2);
//        4hello

//      任何一个java类全有equals方法。
        System.out.println("hello".equals("abc"));

        String s4="abc";
        String s5="abc";
        String s="c";
        String s6 ="ab"+s;
        System.out.println(s4==s5);
//        true  表示s4和s5地址相同
        System.out.println(s5==s6);
//      false  jdk1.8版本会在拼接的时候new一下，s5的abc存在常量池里，s6的abc存在堆里，地址不同
        String s7=s6.intern();
        System.out.println(s7==s4);
        //intern()  表示统一地址，将s6的地址也放入常量池中
        String s3= s1.concat(s2);
        System.out.println(s4==s3);
        //false concat没有用到常量值，直接拷贝数组，new了一个新数组，与原地址不同
//        String的equals方法，比较字符串对象的意义是否相等，即字面值是否相等，相等返回true,不相等返回false
//        ==比较是否引用同一个对象，如果是同一个对象返回true,不是同一个对象返回false

        String s10="def";
//      实例名{变量名称}.方法（）
        System.out.println(s10.charAt(2));
        //返回字符串中第几个字符
        System.out.println("abcdefg".indexOf("cd",4));
        //返回cd的第一个下标                       从下标4开始找cd,找不到返回-1

        System.out.println("abc".equalsIgnoreCase("ABC"));
        //true 忽略大小写比较

        System.out.println("abcdefghijk".substring(3,5).indexOf("c"));
        //查找下标由3到5中是否有c

        String a="Welcome to Java World!";
        String a1=" sun java ";
        System.out.println(s.startsWith("Welcome"));
        //true 判断起始字符是否是Welcome
        System.out.println(s.endsWith("World"));
        //false 判断结尾字符是否是World，是！
        String sL=s.toLowerCase();
        //小写
        String sU=s.toUpperCase();
        //大写
        System.out.println(sL);
        System.out.println(sU);
        String subs=s.substring(11);
    }
}
